home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_spinner.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  85 lines

  1. #ifndef __EWL_SPINNER_H__
  2. #define __EWL_SPINNER_H__
  3.  
  4. /**
  5.  * file ewl_spinner.h
  6.  * @defgroup Ewl_Spinner Spinner: A Numerical Value Entry
  7.  * Provides a field for entering numerical values, along with buttons to
  8.  * increment and decrement the value.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /spinner/file
  15.  * @themekey /spinner/group
  16.  */
  17.  
  18. /**
  19.  * A combination of entry and increment/decrement buttons for adjusting
  20.  * numerical values.
  21.  */
  22. typedef struct Ewl_Spinner Ewl_Spinner;
  23.  
  24. /**
  25.  * @def EWL_SPINNER(spinner)
  26.  * Typecasts a pointer to an Ewl_Spinner pointer.
  27.  */
  28. #define EWL_SPINNER(spinner) ((Ewl_Spinner *) spinner)
  29.  
  30. /**
  31.  * Inherits from Ewl_Box and adds an entry box that can only contain
  32.  * numerical values as well as buttons for manipulating that value.
  33.  */
  34. struct Ewl_Spinner
  35. {
  36.     Ewl_Box       box; /**< Inherit from Ewl_Box */
  37.     double          min_val; /**< Minimum numerical value displayed */
  38.     double          max_val; /**< Maximum numerical value displayed */
  39.     double          value; /**< Current value displayed */
  40.     double          step; /**< Amount to add or subtract at a time */
  41.     int             digits; /**< Number of digits displayed after decimal */
  42.     Ewl_Widget     *entry; /**< The Ewl_Entry displaying value */
  43.     Ewl_Widget     *increment; /**< Ewl_Button to add value */
  44.     Ewl_Widget     *decrement; /**< Ewl_Button to subtract value */
  45.     double          start_time; /**< Time the spinner was pressed */
  46.     int             direction; /**< Indicate increasing/decreasing value */
  47.     Ecore_Timer    *timer; /**< Timer for tracking mouse button held down */
  48. };
  49.  
  50. Ewl_Widget     *ewl_spinner_new(void);
  51. int             ewl_spinner_init(Ewl_Spinner *s);
  52. void            ewl_spinner_value_set(Ewl_Spinner *s, double value);
  53. double          ewl_spinner_value_get(Ewl_Spinner *s);
  54. void            ewl_spinner_digits_set(Ewl_Spinner *s, unsigned char digits);
  55. double          ewl_spinner_min_val_get(Ewl_Spinner *s);
  56. void            ewl_spinner_min_val_set(Ewl_Spinner *s, double val);
  57. double          ewl_spinner_max_val_get(Ewl_Spinner *s);
  58. void            ewl_spinner_max_val_set(Ewl_Spinner *s, double val);
  59. void            ewl_spinner_step_set(Ewl_Spinner *s, double step);
  60.  
  61. /*
  62.  * Internally used callbacks, override at your own risk.
  63.  */
  64. void ewl_spinner_realize_cb(Ewl_Widget *widget, void *ev_data,
  65.                         void *user_data);
  66. void ewl_spinner_key_down_cb(Ewl_Widget *widget, void *ev_data,
  67.                         void *user_data);
  68. void ewl_spinner_focus_out_cb(Ewl_Widget *w, void *ev_data,
  69.                         void *user_data);
  70. void ewl_spinner_wheel_cb(Ewl_Widget *w, void *ev_data, 
  71.                         void *user_data);
  72.  
  73. void ewl_spinner_increase_value_cb(Ewl_Widget *widget, void *ev_data,
  74.                         void *user_data);
  75. void ewl_spinner_decrease_value_cb(Ewl_Widget *widget, void *ev_data,
  76.                         void *user_data);
  77. void ewl_spinner_value_stop_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  78. void ewl_spinner_destroy_cb(Ewl_Widget *w, void *ev_data, void *user_data);
  79.  
  80. /**
  81.  * @}
  82.  */
  83.  
  84. #endif                /* __EWL_SPINNER_H__ */
  85.